前言
平常在大學生活中,課程、作業、考試、報告以及其他活動的時間常常散落在不同地方。
有時候資訊出現在 Discord,有時候則需要另外打開 Google Calendar 建立行程。當事情變多之後,就很容易忘記把重要的日期記錄下來。
因此這次的 30 天專案,我想嘗試製作一個:
Discord × Google Calendar 智慧行程管理機器人
希望讓使用者可以直接透過 Discord 管理自己的 Google Calendar,減少在不同 App 之間切換的麻煩。
為什麼想做這個專案?
Discord 本身就是我平常會使用的平台,而 Google Calendar 也是很常見的行程管理工具。
如果可以把兩個服務串接起來,就可以直接在 Discord 中輸入行程,例如:
明天下午 3 點資料結構小考
機器人收到訊息之後,再將內容整理成日期、時間以及事件名稱,最後建立到 Google Calendar。
未來希望可以做到類似:
事件:資料結構小考
日期:明天
時間:15:00
讓建立行程這件事情變得更快速。
這個專案預計解決什麼?
這次專案預計完成幾個主要功能:
透過 Discord 新增行程
將行程同步到 Google Calendar
查詢近期行程
修改或刪除既有行程
目前預計使用的技術包括:
JavaScript
Node.js
discord.js
Google Calendar API
OAuth 2.0
dotenv
Git
GitHub
如果前面的主要功能順利完成,後期會再考慮加入 Gemini API,讓機器人可以進一步解析自然語言。
專案整體架構
目前預計的基本流程如下:
使用者
↓
Discord
↓
Discord Bot
↓
Node.js
↓
Google Calendar API
↓
Google Calendar
使用者先在 Discord 輸入指令,Discord Bot 接收到內容之後,由 Node.js 處理相關邏輯,再透過 Google Calendar API 操作行事曆。
Day 1 目標
第一天主要先完成:
建立專案基本環境
首先建立這次的專案資料夾:
discord-calendar-bot
接著使用 npm 初始化 Node.js 專案:
npm init -y
其中 src/index.js 會作為目前程式的主要進入點。
.env 則預計用來存放之後會使用到的 Discord Token、Google API 等敏感資訊。
另外在 .gitignore 中加入:
node_modules/
.env
避免套件資料夾以及敏感資訊被上傳到 GitHub。
今天完成了什麼?
Day 1 目前完成:
建立 discord-calendar-bot 專案
初始化 Node.js 專案
建立 src/index.js
建立 .env
建立 .gitignore
建立 README
確認 Node.js 可以正常執行
完成專案初步架構規劃